Я огляделся, но не смог найти решение того, что должно быть хорошо спрошенным вопросом. Вот код, который у меня есть:
#include <stdlib.h>
struct my_struct {
int n;
char s[]
};
int main()
{
struct my_struct ms;
ms.s = malloc(sizeof(char*)*50);
}
и вот ошибка gcc дает мне: error: недопустимое использование элемента гибкого массива
Я могу заставить его скомпилировать, если я объявляю объявление s внутри структуры
char* s
и это, вероятно, превосходная реализация (арифметика указателя быстрее, чем массивы, да?) но я думал, что в c декларации
char s[]
совпадает с
char* s