我的第一個問題在這裏。 我正在使用指針數組而不是二維數組。現在,要顯示一個元素,我可以使用*(arr [i] + j),其中arr是數組i表示列,j表示列。但是,當我嘗試爲使用相同記號的任何元素賦值時,代碼停止工作。我沒有收到編譯錯誤,但是當我運行它時,它只是停止工作。有人能幫助我嗎?使用指針陣列
這裏是我的代碼
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
int i,j,k;
char temp2, temp, *arr[] = {
"Brinda Roy",
"Rakesh Bai",
"Neha Saxen",
"Ankit Jain"};
printf("%c",*(arr[3]+8));
for(i=0;i<4;i++){
for(j=0, k=9; j<=4, k>=5; j++, k--){
temp =*(arr[i]+j);
*(arr[i]+j)=*(arr[i]+k);
*(arr[i]+k)=temp;
}
}
printf("\nThe array is ");
for(i=0; i<4; i++){
printf("\n%s",arr[i]);
}
getch();
return 0;
}
打開調試器,並在發生問題時檢查計數器的值。這可能是非常明顯的問題。 –
指針數組只是一個2D數組。 'arr [i]'相當於'*(arr + i)'。 – Trevor
您的錯誤可能是分段錯誤錯誤,這意味着數組在某處出界。它通常發生在玩指針時。嘗試調試您的代碼。 – ppsreejith