Добавление значения в массив в C не работает

#c #arrays

#c #массивы

Вопрос:

Я хочу добавить строку в массив строк, но это не работает.
В настоящее время у меня есть этот код:

 void splitArray(char *strings, char *delimiter) {
int i = 0;
char newArray[MAXCHARS];
char* pch = NULL;

pch = strtok(strings, delimiter);

while (pch != NULL)
{
    // doesn't work; Exception: warning: assignment makes integer from pointer without a cast [enabled by default]
    newArray = pch;
    printf("%sn", pch);
    pch = strtok(NULL, delimiter);
}
}
  

Как я могу решить эту проблему?

Комментарии:

1. strcpy Вводом pch в newArray? И, кстати, char newArray[MAXCHARS]; это не строковый массив, это массив символов, также известный как строка…

2. Спасибо, что решил проблему

3. Хорошо 🙂 В этом случае вы должны принять ответ @cloud1, поскольку он говорит в основном то же самое.

4. Зачем добавлять что-то в массив, если массив теряется при возврате функции? Чего вы на самом деле пытаетесь достичь? (кстати — у вас нет массива строк)

5. Параметр должен быть строковым массивом, а затем я разделяю его разделителем. После этого я хочу вернуть разделенный массив в основную программу

Ответ №1:

Используйте strcpy для копирования строки в массив символов.