Итак, я видел, что некоторые люди не рекомендуют использовать литералы String для создания символа в C. Однако я обнаружил, что это самый полезный метод, и у меня есть набор символов как
char a[] = "456";
Я так понимаю, что в этом типе данных фиксируется память. Однако в моем задании я считаю, что мне нужно перераспределить память для моего значения char, поскольку я добавляю целые числа, которые представлены в виде строк. Например:
char b[] = "500";
char c[] = "501";
//add function for adding b and c. have a char d[] equal to "1000".
Для этого я использую длинное сложение. Я пробовал экспериментировать с функцией realloc, но это не сработало. Как бы я постоянно добавлял новые символы в строку?
char a[] = "456"
не создаются строковые литералы, строковый литерал является инициализатором массиваa
. - person stensal   schedule 10.02.2019realloc()
работает, если используется правильно; его не особенно сложно использовать правильно, хотя очень легко использовать его неправильно. Лучшее описание было бы таким: я пробовал экспериментировать с функциейrealloc()
, но не смог понять, как правильно ее использовать. - person Jonathan Leffler   schedule 10.02.2019realloc
, если он настаивает на использованииchar a[] = "456";
для объявления хранилища. Насколько я понимаю,realloc
может перераспределять только хранилище, выделенное в куче. Поправьте меня если я ошибаюсь. - person stensal   schedule 10.02.2019realloc()
состоит в том, чтобы попытатьсяrealloc()
использовать память, которая ранее не была выделена. Решение с использованиемrealloc()
и друзей потребует тщательной переработки кода. Тем не менее, это можно было сделать;realloc()
не сломан. - person Jonathan Leffler   schedule 10.02.2019