Предполагается, что программа должна сравнивать строки и размещать их в алфавитном порядке, но окончательный printf-оператор печатает мусор ... где я здесь не так?
я использовал массив указателей на строки и объявил их в начале, я даже пытался использовать температуру как массив, а не указатель стили оленью кожу достаточно работатьЧто происходит с моей программой?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int j;
int i;
char *temp;
char *string[5] = {"ibrahim","laura","peter","degea"};
for (i = 0; i< 4;i++)
printf("%s\n", string[i]); //allocating memory
for(i = 0; i< 10 ;i++)
string[i] = (char*)malloc (30 * sizeof(char));
temp = (char*)malloc(30*sizeof(char));
for (i=0; i< 3; i++)
for(j =i+1; j<4; j++)
{
if(strcmp(string[i], string[j]) > 0)
{
strcpy(temp, string[i]);
strcpy(string[i], string[j]);
strcpy(string[j], temp);
}
}
for (i = 0; i< 4; i++)
{
printf("%s\n",string[i]);
puts("\n");
}
free(string);
free(temp);
return 0;
}
'string [i] = (char *) malloc (30 * sizeof (char));' что? – moeCake
Извините, откажись от моего ответа, я удалил .. –
@OP, пожалуйста __DO NOT__ отредактируйте свое оригинальное сообщение на основе предоставленных ответов. Это заставляет всех людей, которые потрудились ответить, выглядят неправильно и глупо. –