#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define STRING_LENGTH 20
#define MAX 30
int read_string(char string[], int n);
int main(){
int i = 0;
char *name_list[MAX];
char word[STRING_LENGTH + 1];
for (;; i++){
printf("Enter a word.\n");
read_string(word, STRING_LENGTH);
if (word[i] == '\0')
break;
name_list[i] = malloc(sizeof(char) * 20);
strcat(name_list[i], word);
}
}
int read_string(char string[], int n){
int ch, i = 0;
while ((ch = getchar()) != '\n')
if (i < n)
string[i++] = ch;
string[i] = '\0';
return i;
}
Пункт этой программы состоит в том, чтобы читать словами и помещать их в массив указателей для сортировки. это то, что я до сих пор, мой отладчик говорит, что использование strcat небезопасно, но я не знаю почему. Он говорит, что использует strcat_s, но это приводит к сбою моей программы. Любая помощь в том, как заставить это работать?Копирование строк в массив?
извините я забыл добавить, что если пользователь не вводит ничего после того, как подсказка о завершении программы. – Flower
Я исправил это, но отладчик все еще говорит, что использование strcat, strcpy и strcat_s, strcpy_s небезопасно – Flower
Кроме того, цикл for, как и сейчас, бесконечен. Вы должны изменить его на 'for (i = 0; i
moffeltje