У меня небольшая проблема, когда я пытался запустить свой простой код в Frama-c. Я пытаюсь создать действительный указатель на структуру массива и вернуть этот указатель из моей функции Stack_init
. Я не понимаю, почему Frama-с возвращает эту ошибку и не доказать свою функцию:Образец Frama-c несовместим с типом
[kernel] preprocessing with "gcc -C -E -I. /home/federico/Desktop/simple_main_v2.c"
[kernel] warning: Neither code nor specification for function malloc, generating default assigns from the prototype
[wp] Collecting axiomatic usage
[wp] warning: Missing RTE guards
Desktop/simple_main_v2.c:28:[wp] warning: Cast with incompatible pointers types (source: sint8*) (target: sint32*)
[wp] 0 goal scheduled
Мое намерение состоит в том, чтобы создать функцию, которая возвращает указатель, без предварительных условий, где Постусловие является то, что указатель действительный.
Может кто-нибудь помочь мне понять, где моя ошибка?
/*
create_stack
Inputs: none
Outputs: S (a stack)
Preconditions: none
Postconditions: S is defined and empty
*/
/*@
ensures \valid(\result) && \result[0] == 0;
*/
int *Stack_Init()
{
int *stack = malloc (sizeof(int[100]));
stack[0] = 0;
return stack;
}
Включите? –
billpcs
спасибо за ваш ответ, к сожалению, да, я включил библиотеку (чуть выше раздела кода я отправляю – FedeXu