現時点では、Cの動的配列を理解しようとしています。ポインタ「ptr」にメモリを割り当てると、必要な要素数(malloc関数)を入力しなくても機能します。
さて、問題は、なぜそれが機能しているのか理解できないことです。
誰かが私にいくつかのアドバイスをしてくれるなら、素晴らしいでしょう。ありがとう。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct daten
{
char name[20];
int alter;
};
int main(void)
{
struct daten *ptr;
int i;
ptr = malloc(sizeof(struct daten *)); //works fine!!
//ptr = malloc(sizeof(struct daten *)*4);
strcpy(ptr[0].name, "Daniel");
ptr[0].alter = 23;
strcpy(ptr[1].name, "Fabian");
ptr[1].alter = 29;
strcpy(ptr[2].name, "Helmut");
ptr[2].alter = 34;
strcpy(ptr[3].name, "Katrin");
ptr[3].alter = 21;
for(i = 0; i<4; i++)
{
printf("%s\t", ptr[i].name);
printf("%d\n", ptr[i].alter);
}
return 0;
}