xcode Macで簡単なC言語の練習をしています0x600000000のメモリ読み込みに失敗しました
これは単純なバブルソートアルゴリズムです。
私はコード には論理的または文法エラーがないと思いますが、私は
エラーをデバッグした後にエラー警告を参照してください:「メモリが0x600000000
のために失敗した読み取りが多分これは、メモリの問題についてですが、私はドン について何を意味するのかを知り、警告メッセージなしでこの問題を解決できる方法
PS:私は日本語の母国語ではありません。事前に私の下手な英語を理解いただき、ありがとうございます:)
int p[]={0},i,j,num,temp;
printf("number: ");
scanf("%d",&num);
for(i=0;i<num;i++)
scanf("%d",&p[i]);
printf("arry numbers show-----");
printf("\n");
for(i=0;i<num;i++)
printf("%d ",p[i]);
printf("\n");
for(i=0;i<num;i++)
{
for(j=0;j<num-1;j++)
{
if(p[j]>p[j+1])
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
for(i=0;i<num;i++)
printf("%d ",p[i]);
printf("\n");
'p'には1つの要素しかありません(' int p [] = {0} ')。 – BLUEPIXY
これは、 'int p [] = {0}'は単一の要素0を含むサイズ1の配列を作成します。配列はC配列であり、それ以降は拡大しません。あなたは、配列の実際のサイズが分かっているときに十分なスペースを割り当てたり、サイズnum_after_ scanning numの可変長配列(VLA)を作成することができます。 –
分かりました 。私はC配列が成長すると思った。大変ありがとうございました! – jihoon