Tag: 指针

char * p =“orkut”vs const char * p =“orkut”

char *p=”orkut” vs const char *p=”orkut” 这两个有什么不同…… 编辑 来自bjarne stroustrup,第3版第90页 void f() { char* p=”plato”; p[4]=’e’ // error: assign to const;result is undefined } 这种错误通常不会被捕获,直到运行时间和实施在执行此规则方面有所不同 与const char * p =“plato”相同 这就是为什么我会问这种差异……这里的const的意义是什么?

修改C函数内的指针时出现问题

嗨,我正在尝试在C中实现一个喜欢的llist操作。我的方法是在头文件C文件中实现所有操作,并将其包含在主文件中以管理链接列表。 这是头文件linkedlist.h ,包含操作实现 //Here is my code for the node structure: struct node { struct node * next; char cinfo; }; //Here is a method to do a simple insertion in the begining of the list void beginInsertSL(char val, struct node ** root){ struct node *p = malloc(sizeof(struct node*)); p->cinfo = val; if(*root == NULL){ […]

C中的全局指针?

我知道指针通常在声明时分配,但我想知道是否有任何方法可以在C中创建一个全局指针。例如我的代码如下:这是一个好习惯吗? static int *number_args = NULL; void pro_init(int number) { number_args = &number; /* initialize the pointer value — is this okay? */ }

使用C 创建列表和结构数组

我目前正在开始使用C,所以我想我会尝试创建自己的自定义列表。 这是代码: #include struct list { char data[10]; struct list *n; }; void clist(struct list *a) { int j=(sizeof(a)/sizeof(a[0])); j–; for(int i=0; i<j-1; i++) { struct list *next=&a[i+1]; a[i].n=next; } } int main() { struct list first = {.data="one", .n=NULL}; struct list second = {.data="two", .n=NULL}; struct list third = {.data="three", .n=NULL}; struct list arr[] […]

什么类型是对数组变量的引用?

我有以下代码: /* * Pointer to a function that reads a codesegment */ typedef bool (*BRCS)(void *, uint32, uint64 *, uint64 *, const char **, const char **); BRCS get_prog_id; /* * ‘get_prog_id’ is loaded from a dynamic library */ uint64 start_o; uint64 length_o; char prog_id[256]; char err[256]; get_prog_id(NULL, 0, &start_o, &length_o, &prog_id, &err); 当我运行我的编译器时,我收到以下警告: passing […]

C – 指针内存分配

有人可以向我解释之间的区别 int *x = malloc(sizeof(int)); && int *x = (int*)malloc(sizeof(int)); 谢谢!

C中指针和变量之间的差异?

#include int inc1(int x) { return x++; } int inc2(int *x) { return (*x)++; } int main(void) { int a; a = 3; printf(“%d\n”, inc1(a) + a); printf(“%d\n”, inc2(a) + a); return 0; } 我正在处理一篇过去的论文,其中一个问题是跟踪第6行和第9行之间的变化。我有点理解指针(引用内存位置),但是如果有人可以直接告诉我对整个这段代码都很棒。

带指针结构的SWIG函数

我使用SWIG来包装C共享库。 我有问题在python中使用struct指针调用C函数。 我的文件: ST_Param.h: typedef struct { unsigned int* device_Address; …. …. unsigned int lock; }ST_param_ST; unsigned char ST_Param_Initialize(ST_param_ST * ST_param, unsigned int device_Address); ST_Param.c ……… Rest of file…………. unsigned char ST_Param_Initialize(ST_param_ST * ST_param, unsigned int device_Address){ if(ST_param == NULL){ ………. rest of funtion ………………….. return 0; } 在ST_Param_Initialize中我确认指针存在,如果不相信 ST_Param.i : /* File : ST_Param.i […]

Mergesort – 分段故障

代码目录结构, ./Computing$ ls -LR .: list file.txt mergeSort.c program.exe type.h ./list: arrayImpl.c linkedListImpl.c list.h 编制程序: $./Computing gcc -Wall -Werror -DARRAY -I. mergeSort.c ./list/*.c -o program 这是包含文件的完整代码, mergeSort.c , list/* , type.h 使用List的给定表示, typedef struct List{ void **array; /* Housekeeping – Array enhancement/shrink */ int lastItemPosition; int size; }List; mergesort在list->array下面执行,其中aux维护array的浅表副本 void mergeSort(List *list, size_t listSize, isLess […]

宏交换(t,x,y)交换类型为t的两个参数

所以我基本上试图创建一个交换两个t类型参数的SWAP(t,x,y)宏。 当这两个参数都是这种forms时,我试图想到解决这个问题 v [i ++]和w [f(x)],即SWAP(int,v [i ++],w [f(x)])。 下面的代码基本上崩溃了…… #define SWAP(T,x,y) {T *p = x; T *q = y; T z = *p; *p = *q; *q = z;} int f (int x){ return (0-x); } int main(void) { int v[] = {1,2,3}; int i = 0; int w[] = {4,5,6}; int x = […]