好的,所以我在我的程序中有一個奇怪的問題,我真的不明白髮生了什麼。問題是:簡單的程序幫助 - 發送動態內存指針功能
- 當我只用例1,我的程序崩潰
- 當我使用例2]它的工作原理
你能向我解釋爲什麼我不能用第一例?
#include <iostream>
using namespace std;
int show(int **a, int *n){
int i;
for(i=0; i<*n; i++){
cout << "number is: " << *a[i] << endl; // EXAMPLE 1
cout << "number is: " << *(*a+i) << endl; // EXAMPLE 2
}
}
main() {
int n = 3, i;
int *a = new int[n];
for(i=0; i<3; i++){
cout << "number: ";
cin >> a[i];
}
show(&a, &n);
}
第一,需要前主 – Danh
一個int然後,這裏是的說明中,是一個指針的指針到3整數的數組的第一個元素。那麼你需要首先得到指向第一個元素的指針 – Danh
在例1中,你取消引用了一些不屬於你的指針,這是未定義的行爲。 – Danh