主文件中使用的所有函数均已正确定义。但是,当我尝试进入调试模式时,由于某种原因,IDE 在被要求时没有进入所述功能。取而代之的是,它就像一个步骤并忽略了这些行,直到最后一行,所有变量都出乎意料地出现在窗口中;在此之前,没有任何变量存在。
这是主文件:
#include "pointers.h"
int main(void){
whatisapointer();
whatisthesizeofapointer();
whatareNpointersplacedsuccessively(6);
return 0;
}
用于在 main 中定义函数的 pointers.c 文件:
#include "pointers.h"
void whatisapointer(){
int *pointer;
pointer = allocateOneInteger();
*pointer = 42;
}
void whatisthesizeofapointer(){
int a = sizeof(char);
int b = sizeof(int);
int c = sizeof(char*);
int d = sizeof(int*);
}
void whatareNpointersplacedsuccessively(int N){
int i, *Npointer, *current;
char *Npointerchar, *currentchar;
Npointer = allocateNInteger(N);
current = Npointer;
current = Npointer+1;
current = Npointer+2;
for(i=0;i<N;i++) *(Npointer+i) = i;
N=2*N;
Npointerchar = allocateNChar(N);
currentchar = Npointerchar;
currentchar = Npointerchar+1;
currentchar = Npointerchar+2;
for(i=0;i<N;i++) Npointerchar[i] = 65+i;
Npointer[N-3] = 0x68676665;
current = Npointer+N-3;
}
int* allocateOneInteger(){
return (int*)malloc(1*sizeof(int));
}
int* allocateNInteger(int N){
return (int*)malloc(N*sizeof(int));
}
char* allocateNChar(int N){
return (char*)malloc(N*sizeof(char));
}
void echange(int a,int b)
{
int temp;
temp=a;
a=b;
b=temp;
}
void echangep(int *pa,int *pb)
{
int temp;
temp=*pa;
*pa=*pb;
*pb=temp;
}
/* Fonction allocateNFloat
*/
void allocateNFloat(int N){
}
和makefile:
CC := gcc
FLAGS := -g -Wall -Werror
all : prog
prog : pointers.o mainpointers.o
$(CC) pointers.o mainpointers.o -o prog
fonctions.o : pointers.c pointers.h
$(CC) -c pointers.c $(FLAGS) -o pointers.o
mainpointers.o : mainpointers.c pointers.h
$(CC) -c mainpointers.c $(FLAGS) -o mainpointers.o
clean :
rm -f *.o
rm -f prog
我做了一些研究,没有一个可以帮助我解决这个问题。