我正在玩弄指針和結構。這是我一直在搞的程序。我得到一個segfault錯誤,我不知道爲什麼。我已經查看了一段時間,但似乎無法查明問題。有人可以向我解釋嗎?編輯:在createArray我在* purp [i] [j] ='1'得到段錯誤;段錯誤:結構,指針,二維數組
#include <stdio.h>
#include <stdlib.h>
struct purple_struct{
int x;
int y;
char **purp;
};
void print(int x, int y){
printf("%d %d\n", x, y);
return;
}
void createArray(char*** purp, int x, int y){
int i, j;
for (i = 0; i < x; ++i){
for (j = 0; j < y; ++j){
*purp[i][j] = '1';
}
}
return;
}
int main(){
int i, j;
struct purple_struct dog;
dog.x = 3;
dog.y = 4;
dog.purp = (char **)malloc(dog.x * sizeof(char *));
for (i = 0; i < dog.x; ++i){
dog.purp[i] = (char *)malloc(dog.y * sizeof(char));
}
createArray(&dog.purp, dog.x, dog.y);
for (i = 0; i < dog.x; ++i){
for (j = 0; j < dog.y; ++j){
printf("%c", dog.purp[i][j]);
}
}
print(dog.x, dog.y);
return 0;
}
完美的時間開始像gdb一樣的調試器 –
提示:不傾向於成爲一個三星級程序員。 –
甚至沒有這個必要。在普通的調試器上,像Eclipse一樣,一行一行地顯示錯誤的位置。 –