我正在处理类型的函数:
int xyz(int input[])
Run Code Online (Sandbox Code Playgroud)
我无法访问main函数,因此不知道数组的大小.如何找到输入数组的大小?有没有办法知道数组的结束位置?
sizeof(input)/sizeof(int*)给出1作为输入基本上是一个指针.
我有一个没有内存的功能.
我想在调用此函数后断言该函数释放了给定的内存.
我无法改变这个功能中的任何东西.
对于单一测试我需要它.我想测试我的函数,我想检查一下我的函数在调用之后真的释放了内存
问题出在代码中
void func(char *mem)
{
// Some where in the function there is a free of the memory
// The free could be into if condition so there is a risk to not be executed
}
int main()
{
char *mem = malloc(20);
func(mem);
// how to assert here that the memory is freed?
}
Run Code Online (Sandbox Code Playgroud) 我想检测程序的kill信号,以便在离开程序之前执行一些C指令.我的程序在linux上运行
有可能吗?如果是的话我怎么能这样做?
我有字符串包含一个路径
string="toto.titi.1.tata.2.abc.def"
Run Code Online (Sandbox Code Playgroud)
我想提取位于其后的子串toto.titi.1.tata.2..但这里的1和2是示例,可以是其他数字.
一般来说:我想提取位于其后的子串toto.titi.[i].tata.[j]..
[i]并且[j]是一个数字
怎么做?
如果我将cat命令保存到字符串然后执行它,那么我将收到错误
linux# cmd="cat /data/test/test.tx* | grep toto"
linux# eval '$cmd'
cat: |: No such file or directory
cat: grep: No such file or directory
cat: toto: No such file or directory
Run Code Online (Sandbox Code Playgroud)
即使
linux# $cmd
cat: |: No such file or directory
cat: grep: No such file or directory
cat: toto: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我知道
linux# eval "$cmd"
Run Code Online (Sandbox Code Playgroud)
工作,但在我的脚本中我想使用 eval '$cmd'
如何将cat命令保存到变量中时执行?
现在如果cmd="echo anymessage"那么
linux# eval '$cmd'
linux# $cmd
linux# eval "$cmd"
Run Code Online (Sandbox Code Playgroud)
所有这些都会奏效
我在printf语句中使用了下面的代码.
void main()
{
int n=0102;
printf("%d", n);
}
Run Code Online (Sandbox Code Playgroud)
这打印66作为答案.我还将变量n的值更改为012.它给出了答案10.请帮助我关于如何完成此转换?
我试图像在小端机器中那样向后打印出一个内存地址,但由于某种原因,我的程序在我的程序中输出两个char数组.
char address[8];
char result[16];
scanf("%s", address);
int x = 1;
for(x; x<5; x++)
{
int y = 4*x;
int z = 8 - 2*x;
result[y-4] = '\\';
result[y-3] = 'x';
result[y-2] = address[z];
result[y-1] = address[z+1];
}
printf("%s", result);
Run Code Online (Sandbox Code Playgroud)
例如,如果我输入"12345678"它输出"\x78\x56\x34\x1212345678"
我想要的"\x78\x56\x34\x12",但我不明白为什么"12345678"也打印.
我有一个字符串"h264:640x480:4:30000".我使用sscanf函数如下.
char res[16] = { 0 };
int quality = 0;
int fps = 0;
sscanf(temp1, "h264:%s:%d:%d", res, &quality, &fps);
Run Code Online (Sandbox Code Playgroud)
执行此功能时.我期待"res"中的"640x480","质量"中的"4"和"fps"中的"3000".但它将整个字符串复制到"res"中,其他两个变量值保持为0.
这个问题的正确格式是什么.
我有包含单词的字符串.
在单词之间有一个随机数的空格
str="toto1 toto2 toto3 toto4 toto5 toto6"
Run Code Online (Sandbox Code Playgroud)
如何删除重复的空格并在单词之间只保留一个空格?
我想过滤以下命令中的行:
$ cat /proc/net/route
Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT
br-lan 01020300 C0A80101 0003 0 0 3 FFFFFF00 0 0 0
br-lan 03043836 C0A80101 0007 0 0 5 FFFFFFFF 0 0 0
br-lan C0A80100 00000000 0001 0 0 0 FFFFFF00 0 0 0
Run Code Online (Sandbox Code Playgroud)
我想只提取包含Destination 01020300和Mask的行FFFFFF00
我尝试使用以下正则表达式,但它不起作用
cat /proc/net/route | grep "[^ \t\v]\+[ \t\v]\+$dest[ \t\v]\+[^ \t\v]\+[ \t\v]\+[^ \t\v]\+[ \t\v]\+[^ \t\v]\+[ \t\v]\+[^ \t\v]\+[ \t\v]\+[^ \t\v]\+[ \t\v]\+$mask"
Run Code Online (Sandbox Code Playgroud)
我是新手wuth regexp格式.你能帮助我为这个案子提供良好的正则表达式吗?