爲什麼我得到這個警告?輸出是正確的,因爲我想。這是一個簡單的指針practice.But我得到不需要的warning.please幫助。爲什麼我得到「警告:從不兼容的指針類型[默認啓用] |」
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
main()
{
int a,b,c,i,j,k=0;
scanf("%d%d", &a, &b);
int arr[a][b];
int *ptr[b];
ptr[b]=arr;
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
*(*(arr+i)+j)=k;
k++;
}
}
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
printf("%d\t",*(*(arr+i)+j));
}
printf("\n");
}
return 0;
}
'ptr [b] = arr;'是即時未定義的行爲。也請使用'[]',這就是他們在那裏。 – unwind
'int * ptr [b]'將ptr聲明爲指向int的數組[b]。然後嘗試將1分配到數組的末尾。你也試圖將一個指向int數組的指針(在轉換後)賦給一個指向int的指針。 –
'ptr [b]'的類型是'int *'。評估的'arr'類型是'int(*)[b]'。這兩種類型是不同的。 – BLUEPIXY