Tag: 返回

Swig,返回一系列双打

我知道,通常有很多方法可以解决某些问题。 但在这里,我知道我希望它采用哪种方式,但我无法使其与Python和SWIG一起使用… 我有一个C函数,它返回一个double值数组: double *my(int x) { double a,b,*buf; buf = malloc (x * sizeof(double)); a=3.14; b=2.7; buf[0]=a; buf[1]=b; return buf; } 在这里,我明确地希望将数组作为返回值。 不像在许多示例中那样写入输入数组的’void’函数。 现在,我想获得一个SWIG-python包装器,它可以用作: >>> import example >>> print example.my(7) [3.14,2.7] 无论我做什么,我都有一些概念上的问题 – 我总是得到s.th. 喜欢 我试图在swg文件中定义一些类型图: %typemap(out) double [ANY] { int i; $result = PyList_New($1_dim0); for (i = 0; i < $1_dim0; i++) { […]

返回的字符串值变为垃圾

我试图将字符array值传递给字符pointer 。 然后将此值返回给正在调用它的方法,但在返回之后,该值将变为垃圾。 谁能帮我? #include const char * getname(){ char nam[10]; char * name; gets(nam); name = nam; return name; } main(){ printf(“%s”,getname()); getch(); } 一切都很好,直到字符串返回

返回1,返回0和返回-1之间的区别并退出?

例如考虑以下代码 int main(int argc,char *argv[]) { int *p,*q; p = (int *)malloc(sizeof(int)*10); q = (int *)malloc(sizeof(int)*10); if (p == 0) { printf(“ERROR: Out of memory\n”); return 1; } if (q == 0) { printf(“ERROR: Out of memory\n”); exit(0); } return 0; } 返回0,返回1,退出(0)在上面的程序中做什么.. exit(0)将退出总程序并且控件退出循环但是在返回0的情况下会发生什么,返回1,返回-1。

C递归函数不会返回true

我有一个搜索函数,它使用递归来执行数组的二进制搜索, values[] ,用于value : int recurseSearch(int value, int values[], int min, int max) { if (value > values[max] || min > max) return 1; int midpoint = (max+min)/2; if (values[midpoint] > value) //search in left recurseSearch(value, values, min, midpoint); else if (values[midpoint] < value) //search in right recurseSearch(value, values, midpoint, max); else if (values[midpoint] == […]

如果代码中没有return语句,函数在C程序中返回什么

我做了一个关于如何在C中递归地反转单链表的函数。 function如下。 struct node * reverseSLL2(struct node *p,struct node *temp) { struct node *temp1; if(p!=NULL) { temp1=p->link; p->link=temp; reverseSLL2(temp1,p); //return; } else { return temp; } } 我调用head = reverseSLL2(head,NULL),其中head是指向链表的第一个节点的指针。程序正常工作! 但是,我有两个问题: 1)除了最后一次调用之外,我对函数的所有调用都没有到达return语句,那么这些函数返回的是什么? 2)如果我编写(取消注释)在前面的代码中注释的return语句。 在那种情况下,函数返回什么? 谢谢。

‘main’函数的返回值在哪里?

在C中,函数总是将其值返回给调用函数,而不是自身( 如果返回类型不是void )。 喜欢, int main() 但由于操作系统调用了 ‘ main ‘函数,因此它不是函数 。 那么,’main’函数是谁返回它的值? 当使用表达式返回值时,值的位置 return(0); 在节目结束?

为什么函数不会改变变量?

在这段代码中我似乎得到零,我不太熟悉为什么我不能用我创建的函数改变变量长度。 任何帮助都可能有用。 #include double get_length(double a); int main(int argc, char* argv[]) { double length = 0; get_length(length); printf(“%lf”, length); return 0; } double get_length(double a) { printf(“What is the rectangle’s length?\n”); scanf(“%lf”, &a); return a; } 打印时,返回0.0000

C字符串返回函数返回垃圾

我无法从函数返回一个字符串。 它在main方法中打印出一个垃圾值。 我在这个论坛上看到了类似的问题,但该页面上的结果对我没有帮助。 我不想将另一个变量传递给函数。 我希望能够按原样返回字符串值。 我怎么能这样做? char *LookupPath(char **argv, char **dir) { /* String Name To Be Returned */ char path_name[MAX_PATH_LEN] = {0}; char *result = malloc(sizeof(path_name)); int i; /* Check To See If File Name Is Already An Absolute Path Name */ if(*argv[0] == ‘/’) { } /* Look In Path Directories */ for(i […]

无限循环中的return语句

如果返回语句位于此无限while(1)循环内,则返回语句返回何处? 更重要的是,我不知道while(1)循环可能被打破??? void __attribute__((interrupt, no_auto_psv)) _T3Interrupt(void) { int count; IFS0bits.T3IF = 0; // clear Tmr3 interrupt flag StopMotor(); IEC0bits.ADIE = 0; // disable ADC interrupt IEC0bits.CNIE = 0; // disable CN interrupt IEC0bits.T3IE = 0; // disable Tmr3 interrupt T3CONbits.TON = 1; // restart tmr3 count = 0; while (1) { if (IFS0bits.T3IF) { IFS0bits.T3IF […]

在c中返回一个数组

我想知道是否有任何方法可以返回一个char数组。 我试过这样的“char [] fun()”,但我收到了错误。 我不想要指针解决方案。 谢谢!