Re[12]: invalid fastbin entry (free):
От: Ovoshlook  
Дата: 17.04.14 21:59
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, Ovoshlook, Вы писали:


O>>>>>>j содержит в себе длину сроки, которую я хочу положить в массив. Чтобы ее положить туда, мне нужно в массиве выделить память равную длине этой строки +1 (для символа \0) , где под каждый символ строки выделяется sizeof(char*) байт. Соответственно количество памяти которое должно выделиться под строку = sizeof(char*)*(j+1) (вот кстати похоже 1 ошибку нашел по приоритетам арифметических операций)

EP>[...]
O>>умножить размер одного символа на общее количество символов в строке. sizeof(char)*<количество_символов>
EP>

EP>Правильно, сравни с тем что было ранее, это одна из ошибок, на которую указал watchmaker.

EP>Итак, зная размер строки X, мы можем выделить под неё буфер:

EP>malloc(X) — возвращает указатель на выделенный буфер размера X, либо нулевой указатель в случае fail.

EP>Строка в C, обычно представляется как массив символов. Точнее как указатель на первый символ строки, который имеет тип char*.

EP>Соответственно выделив буфер, сохраним его в переменной с правильным типом (а раз у нас C, то приведение типов не нужно):
EP>
EP>char *string = malloc(X);
EP>

EP>Далее вопрос, для чего тебе нужна эта новая строка (на данный момент содержащая мусор)?

Чтобы положить в нее свое значение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.