я задавался вопросом, если это возможно, чтобы инициализировать строку с пустой строкой, как это:Инициализация строки с пустой строкой
#include <stdio.h>
#include <string.h>
char* some_function() {
char* w = malloc(100*sizeof(char));
w = "";
if (1 == 2) {
w = "Not empty anymore";
}
return w;
}
int main(void) {
char* word = some_function();
int r = strcmp("", word);
printf("%s\n", word);
printf("%d\n", r);
return 0;
}
Он отлично компилируется и дает мне результат я хочу, но я нахожусь все еще совершенно новый на C и задавался вопросом, не приведет ли это к каким-либо проблемам на линии. Также мое использование strcmp для сравнения слова с "" нормально?
В коде, что 'if (1 == 2)' представляет? –
Я просто положил это так, чтобы оператор if был ложным и не выполнялся, поэтому возвращаемая строка - это пустая строка. В основном мне интересно, нормально ли инициализировать пустую строку и вернуть ее в функцию. В действительности, оператор if может быть или не быть правдой, заканчивая функцией, возвращающей пустую строку или строку «Больше не пустая». – PCR
Не рекомендуется делать это, вместо выполнения инициализации, как описано выше, вы можете использовать 'strcpy() '. –