массив масс делает странную ошибку запуска C - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь запустить этот код, и я получаю ошибку времени выполнения в любой из этих команд:

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]='~';
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...