小编dri*_*ker的帖子

如何将函数指针传递给具有可变参数的函数?

我不知道怎么做到这一点!
如何在va_list参数中获取函数指针?
非常感谢.

c function-pointers

6
推荐指数
2
解决办法
2373
查看次数

应由调用者释放的C/Glib字符串

我正在使用glib,
它有很多函数可以返回应该自己释放的字符串.

我可以将这些功能传递给其他功能吗?

示例: function1返回必须为调用者释放的字符串. function2返回一个指向必须释放的字符串的指针.

gchar *string = function2(function1("something"));
g_free (string);
Run Code Online (Sandbox Code Playgroud)

我应该如何释放从function1返回的字符串?这有必要吗?

非常感谢,
对不起我的英语

c glib

4
推荐指数
1
解决办法
2117
查看次数

如何在运行时按名称访问结构字段?

C faqs以某种方式解释它,这里是链接.

但我无法理解,有人能为我解释一下吗?或者给我另一种方式?

非常感谢!

c struct

4
推荐指数
1
解决办法
4019
查看次数

C setjmp.h和ucontext.h,哪个更好?

嗨,我需要从一个地方跳到另一个地方......

但我想知道哪个更好用,setjmp或ucontext,比如:

  • setjmp和ucontext是否可移植?
  • 我的代码使用这些库是线程安全的吗?
  • 为什么用另一个呢?
  • 哪个快速又安全?
  • ...(有人可以回答我忘了放在这里的未来问题吗?)

请提供我要求的更多信息,例如示例或一些文档......

我在网上搜索过,但是我只在C语言中得到异常处理,就像setjmp的例子一样,我对ucontex.h一无所知,我得知它用于多任务,它和pthread的区别是什么?

非常感谢.

c setjmp

4
推荐指数
1
解决办法
1726
查看次数

如何分配或释放数组的部分?

看这个例子:

int *array = malloc (10 * sizeof(int))
Run Code Online (Sandbox Code Playgroud)

然后只释放前3个街区?

或者制作相同的java,使用具有负索引的数组,或者不以0开头的索引.

非常感谢.

c arrays

3
推荐指数
2
解决办法
9817
查看次数

调用函数的不同方法有哪些?

调用函数的不同方法有哪些?例如,我可以在没有()的情况下调用函数吗?

c

3
推荐指数
1
解决办法
1321
查看次数

我可以在结构中放置一个函数吗?

也许我使用内联函数...
有没有办法实现它,而不使用函数指针?

提前致谢.

c

3
推荐指数
1
解决办法
3443
查看次数

我如何返回我用malloc分配的指针的大小?

看这个例子!



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个字节!怎么了?

非常感谢!!!

c malloc sizeof

2
推荐指数
1
解决办法
208
查看次数

C中结构中的类型

在本文中:http://publib.boulder.ibm.com/infocenter/macxhelp/v6v81/index.jsp?topic=/com.ibm.vacpp6m.doc/language/ref/clrc03defst.htm

句子是什么意思"在C中,结构成员可以是任何类型,除了"函数返回T"(对于某些类型T)

感谢所有的答案!

c struct

2
推荐指数
1
解决办法
124
查看次数

C/Glib内存管理{没有悬空参考>为什么!??}

我有一个程序调用具有未定义参数的函数,如下所示:

#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 glib

1
推荐指数
1
解决办法
547
查看次数

C中的稀疏数组!怎么做到的?我可以只分配数组的一部分吗?

第一个问题是:"我如何用C做一个简单的稀疏数组(只有一个维度)?" {亲自动手,没有图书馆.}

最后一个:"我可以只分配数组的一部分吗?"

喜欢*数组;

然后使用malloc为此分配一些mem; 所以,我们释放了我们不想要的索引.

我可以做吗?

非常感谢!

c arrays

1
推荐指数
1
解决办法
5061
查看次数

C预处理器在运行时?

我想做一个令牌连接,但我想用变量的内容而不是它的名字来做这个.像这样.

#define call_function(fun, number) fun##_##number ()

while (i < 10 ) { call_function(fun, i); }

但我给fun_number(),我想给fun_1,fun_2,等等...

怎么做?

关于函数指针.

我正在步行处理ascii caracters上的用户输入,我的选项是&*^> <等等,最多十个令牌.

要在带有函数指针的数组中处理它,我需要创建一个包含127个块的数组,只有十个令牌!

这太贵了!谢谢你的所有答案.

提前致谢!!!

c macros

1
推荐指数
2
解决办法
2321
查看次数

如何使用C宏切割多个部分的字符串?

我想使用宏填充多维数组,以便使用它的人认为他们正在使用一个函数并只传递一个字符串.宏将使用此字符串并在编译时将其转换为使其显示为多维数组,如下所示:

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将字符串转回.

c macros

1
推荐指数
2
解决办法
6679
查看次数

标签 统计

c ×13

arrays ×2

glib ×2

macros ×2

struct ×2

function-pointers ×1

malloc ×1

setjmp ×1

sizeof ×1