私はメモリの動的について学び、実験を行いましたが、それでも行き詰まります。すでにいくつか検索しましたが、結果は得られませんでした。
これは私の簡単なコードです:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct kata kata;
struct kata {
char string[256];
};
void load(kata **data)
{
int len = 0;
while( len < 5 ) {
(*data) = (kata *) realloc ((*data), (len + 1) * sizeof(kata));
printf("copy A - %d\n", len);
strcpy(data[len]->string, "A");
len++;
}
getch();
}
int main() {
kata *data = NULL;
load(&data);
}
そして私の質問は、デバッグ時に常にセグメンテーション違反(3)になるのはなぜですか?
アドバイスありがとうございます
編集 :
エラーが発生する理由はまだわかりませんが、今すぐ解決策を見つけました..
data[len]->string を (*data)[len].string に変更するだけです
data[len]->string と呼ぶ理由は何ですか?