我不知道怎么做到这一点!
如何在va_list参数中获取函数指针?
非常感谢.
我正在使用glib,
它有很多函数可以返回应该自己释放的字符串.
我可以将这些功能传递给其他功能吗?
示例: function1返回必须为调用者释放的字符串. function2返回一个指向必须释放的字符串的指针.
gchar *string = function2(function1("something"));
g_free (string);
Run Code Online (Sandbox Code Playgroud)
我应该如何释放从function1返回的字符串?这有必要吗?
非常感谢,
对不起我的英语
嗨,我需要从一个地方跳到另一个地方......
但我想知道哪个更好用,setjmp或ucontext,比如:
请提供我要求的更多信息,例如示例或一些文档......
我在网上搜索过,但是我只在C语言中得到异常处理,就像setjmp的例子一样,我对ucontex.h一无所知,我得知它用于多任务,它和pthread的区别是什么?
非常感谢.
看这个例子:
int *array = malloc (10 * sizeof(int))
Run Code Online (Sandbox Code Playgroud)
然后只释放前3个街区?
或者制作相同的java,使用具有负索引的数组,或者不以0开头的索引.
非常感谢.
看这个例子!
int main( int argc, char ** argv )
{
int *ptr = malloc(100 * sizeof (int));
printf("sizeof(array) is %d bytes\n", sizeof(ptr));
}Run Code Online (Sandbox Code Playgroud)
printf函数只返回4个字节!怎么了?
非常感谢!!!
在本文中:http://publib.boulder.ibm.com/infocenter/macxhelp/v6v81/index.jsp?topic=/com.ibm.vacpp6m.doc/language/ref/clrc03defst.htm
句子是什么意思"在C中,结构成员可以是任何类型,除了"函数返回T"(对于某些类型T)
感谢所有的答案!
我有一个程序调用具有未定义参数的函数,如下所示:
#include <stdargs.h>
... /* code */
int main () {
GArray *garray = g_array_new (FALSE, FALSE, sizeof (char *));
/* the code above initialize the GArray, and say that the garray expect a pointer to char. */
function_name (garray, "arg2", "arg3" /* and so on ... */);
... /* code */
}
Run Code Online (Sandbox Code Playgroud)
请注意,""之间的参数是字符串,因此,在function_name中:
static void function_name (GArray *garray, ...) {
... /* code */
char *data;
data = va_arg (garray, gchar *);
g_array_append_val (garray, data);
... /* code */ …Run Code Online (Sandbox Code Playgroud) 第一个问题是:"我如何用C做一个简单的稀疏数组(只有一个维度)?" {亲自动手,没有图书馆.}
最后一个:"我可以只分配数组的一部分吗?"
喜欢*数组;
然后使用malloc为此分配一些mem; 所以,我们释放了我们不想要的索引.
我可以做吗?
非常感谢!
我想做一个令牌连接,但我想用变量的内容而不是它的名字来做这个.像这样.
#define call_function(fun, number) fun##_##number ()while (i < 10 ) { call_function(fun, i); }
但我给fun_number(),我想给fun_1,fun_2,等等...
怎么做?
关于函数指针.
我正在步行处理ascii caracters上的用户输入,我的选项是&*^> <等等,最多十个令牌.
要在带有函数指针的数组中处理它,我需要创建一个包含127个块的数组,只有十个令牌!
这太贵了!谢谢你的所有答案.
提前致谢!!!
我想使用宏填充多维数组,以便使用它的人认为他们正在使用一个函数并只传递一个字符串.宏将使用此字符串并在编译时将其转换为使其显示为多维数组,如下所示:
make_array ("string1,{string2,{string3,{...,{stringN");
Run Code Online (Sandbox Code Playgroud)
因此宏将把这个函数替换为多维数组,并在遇到任何地方时剪切该字符串,{.上面的代码会变成这样的:
make_array = { "string1", "string2", "string3", ..., "stringN"};
Run Code Online (Sandbox Code Playgroud)
我正在使用GCC; 我怎么能做到这一点?
更新:我以为我可以使用宏来排除字符串的引号,所以我会有一个没有文本的字符串,我可以在宏中编辑字符串,但GCC不接受宏的声明来替换双引号(如图所示)下面).
#define macro_array ( "text") text
Run Code Online (Sandbox Code Playgroud)
因此,文本将出现没有双引号,我可以找到,{标记并剪切它,然后使用stringify将字符串转回.