Я писал C-программу. Где у меня есть структура с членами char *.Могу ли я назначить значение #define для Char *?
#define SS_Value_1 "Value for SS1"
#define SS_Value_1 "Value for SS2"
struct aSamplestruct {
char* s1;
char* s2;
}aSample;
aSample ss;
fun1(&aSample);
Я посылаю точку структуры к функции, и я знаю, что лучшая практика заключается в выделении памяти для S1 и скопировать строку, что когда-либо мы хотим и освободить выделенную память после использования, как показано ниже
ss->s1 = (char*) MEM_alloc(sizeof(char) * (strlen(SS_Value_1) + 1);
strcpy(ss->s1, SS_Value_1);
использовать переменную ss.s1 в отчете и делать mem бесплатно.
MEM_free(ss.s1);
Его рабочий тон не беспокоится. но я должен написать один и тот же фрагмент кода для нескольких членов char * в 36 различных условиях.
Другим способом является то, что, не выделяя никакой памяти, я могу прямо присваивать значения #define своим членам структуры, как показано ниже.
ss->s1 = SS_Value_1;
Используйте эту переменную в отчете и не нужно освобождать память. таким образом также отлично, никаких проблем при выполнении образца.
, что я хотел бы знать,
ли это вызовет какие-либо утечки памяти? ли это прекратить выполнение для больших данных?
Заранее спасибо
С уважением, Судхиром