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

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

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

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

Итак, зная размер строки X, мы можем выделить под неё буфер:
malloc(X) — возвращает указатель на выделенный буфер размера X, либо нулевой указатель в случае fail.

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

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