nixp.ru v3.0

3 декабря 2024,
вторник,
20:41:36 MSK

anonymous написал 27 апреля 2006 года в 15:34 (749 просмотров) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

Есть такой кусочек кода, вызывается след. образом: xstr_init(&arr, 10, 255);, где char** arr. GDB показывает, что SEGFAULT происходит в строке №30.

подскажите пожалуйста, где здесь ошибка выделения памяти, и как ее корректно исправить? спасибо.

22 void xstr_init(char*** arr, int nmemb, int slen)
     23 {
     24         *arr = (char **)calloc(nmemb, sizeof(char *));
     25         if( *arr == NULL )
     26                 merror("%s(): NULL\n", __func__);
     27
     28         int i;
     29         for(i = 0; i < nmemb; i++){
     30                 *arr[i] = (char *)calloc(slen, sizeof(char));
     31                 if( *arr[i] == NULL )
     32                         merror("%s(): NULL arr[%d]\n", __func__, i);
     33         }
     34
     35
     36 }
iliya

Замени

*arr[i]


на

(*arr)[i].
anonymous
iliya
Замени

*arr[i]

на

(*arr)[i].

спасибо большое. забыл про приоритетность операторов :/

Последние комментарии

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.