Я пытаюсь запустить этот код, и я получаю ошибку времени выполнения в любой из этих команд:
strcpy( memories[i].name, "file");
memories[i].name[4]=i+48;
memories[i].name[5]='\0';
Я пытался понять причину этого довольно долго, но не могу найтиЭто.особенно когда эта команда работает:
strcpy( mm.name, "working file");
полный код:
struct Memory {
char name[50]; //the name of the file
char storage[8000]; //the storage of the file
uint32_t address;
int sizeInUse; //bytes that are used
int memory_id;
};
//void initialMemory (struct Memory mm, struct Memory memories[]);
struct Memory mm; //working file
struct Memory memories[10];
//initialMemory ( mm ,memories);
strcpy( mm.name, "working file");
mm.address=&mm.storage;
mm.memory_id=-1;
mm.sizeInUse=0;
int i,j;
for(i=0; i<10; i++){
strcpy( memories[i].name, "file");
memories[i].name[4]=i+48;
memories[i].name[5]='\0';
memories[i].address= &memories[i].storage;
memories[i].memory_id=i;
int index=(i+1)*2; //we will fill (i+1)*200 places of memory i.
memories[i].sizeInUse= index;
for(j=0; j<index; j++){
memories[i].storage[j]=j+48;
}
memories[i].storage[index+1]='~';
}