3

私は C メモリの概念についてあまり経験がありません。解決策を探してみましたが、見つかりませんでした。

Cで動的配列を作成しようとしています。アドレスが連続しているかどうかを確認しながら、この方法で作成しようとしました。プログラムは正常に実行されました。

ただし、ステートメントの後にセグメンテーション違反が発生しましたsystem("pause")。また、デバッガを使用してデバッグしようとしましたが、うまくいきませんでした! Dev CPP を使用しています。

誰でも私を案内できますか?

#include<stdio.h>
#include<stdlib.h>

main()
{
 int a[0], *ptr, i;

 printf("%d", sizeof(a[0]));
 a[0]=1;
 for(i=1;i<10;i++)
 {
  ptr=(int *) malloc(sizeof(int));
  printf("Enter a[%d]:  ", i);
  a[i]= *ptr;
  scanf("%d", &a[i]);

 }
 i=0;
 while(i<10)
 {printf("\n%u", &a[i++]);}
 free(ptr);
 system("pause");
}
4

6 に答える 6