我一直在尝试分配argv[x]变量指向的结构.我编写了以下代码并获得了Segmentation故障,我知道这是一个内存违规.我不明白我犯了什么错误.这是代码:
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
typedef struct somestruct {
char name[20];
char surname[20];
char misc[4056];
} somestruct;
int
main(int argc, char *argv[])
{
somestruct *pvar;
pvar = malloc(sizeof(somestruct));
if (pvar==NULL)
printf("malloc failed with: %s\n", strerror(errno));
pvar = (somestruct *) memset(pvar, 0, sizeof(somestruct));
memcpy((char *) &(pvar->name), argv[1], 20);
memcpy((char *) &(pvar->surname), argv[2], 20);
memcpy((char *) &(pvar->misc), argv[3],4056);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
先感谢您.
我正在尝试编写一个安全的文件输入。我的固定缓冲区大小为 128。我想从文件中读取字符串,但在复制它们之前我想检查它们的128长度是否小于或等于。
我可以做类似的事情吗:
fscanf(fp, "%128s", myString)
Run Code Online (Sandbox Code Playgroud)
我已经看到以同样的方式使用 scanf 会限制读入的字符数,但没有看到任何对它的引用以这种方式与 fscanf 和字符串一起使用?
我的问题:我想在这个字符串中添加所有数字'1.14,2.14,3.14,4.14'但是逗号导致我的sum函数无法正常工作.
我认为使用条带功能可以解决我的问题,但似乎仍然有一些我缺少或不太了解.
total = 0
for c in '1.14,2.14,3.14'.strip(","):
total = total + float(c)
print total
Run Code Online (Sandbox Code Playgroud)
我已经搜索了如何从字符串中删除逗号,但我只找到了有关如何从字符串的开头或结尾删除逗号的信息.
附加信息:Python 2.7
我是C编程的初学者,我有一个问题.我将以一个简单的代码为例:
#include <stdio.h>
int main( void )
{
int x;
printf( "Please type the number 10." );
scanf( "%i\n", &x );
if ( x == 10 )
printf( "Thank you!\n" );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,当我编译并运行该程序时,我的终端显示以下消息:
"Please type the number 10."
Run Code Online (Sandbox Code Playgroud)
然后它等待输入,所以我输入它要求的数字(10),然后按ENTER.问题是,在我按ENTER一次后,它会移动到一个新行并等待更多输入.只有在输入10并再次按下ENTER后才能继续(...显示"谢谢!").
所以看来我必须按ENTER两次才能接受我的输入.有谁知道为什么会这样?
Example Text:
bclk = /gsrpkg_te/gsrpkg/gsrdie/xxBCLK
Run Code Online (Sandbox Code Playgroud)
我想问一下关于"strtok"的问题.Below是一个示例代码,我遇到了一些疑问.
char *p4;
char *p5;
p4 = strtok (eqvline, "=");
p5 = strtok (NULL, ":");
if ( !strcmp (p4, "bclk") ) {
strcpy ( sa_de_bclk, p5 );
printf ( "[vTPSim] ---> bclk = %s.\n", p5);
}
Run Code Online (Sandbox Code Playgroud)
从上面的示例文本中没有":"(冒号)where.For我理解strtok()何时没有定义的符号被发现NULL将被分配为结果.
但是,为什么在这种情况下即使没有":",p5仍然有分配"/gsrpkg_te/gsrpkg/gsrdie/xxBCLK".
谢谢你的帮助.
#include<stdio.h>
void main()
{
float a = 5, b = 2;
int c;
c = a % b;
printf("%d", c);
}
Run Code Online (Sandbox Code Playgroud)
我得到浮点错误这个程序 - 我..
有人请解释这个..
我想知道是否有可能for i in {n..k}用变量写" "循环.
例如;
for i in {1..5}; do
echo $i
done
Run Code Online (Sandbox Code Playgroud)
这输出
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
另一方面
var=5
for i in {1..$var}; do
echo $i
done
Run Code Online (Sandbox Code Playgroud)
版画
{1..5}
Run Code Online (Sandbox Code Playgroud)
如何使第二个代码与第一个代码一样运行?
ps我知道有很多方法可以通过使用变量来创建循环,但我想特别询问这种语法.
在下面的代码段中,我希望答案为5,但它显示编译时错误:
#include <stdio.h>
int main()
{
int i = 4;
printf("%d", (++i)++);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
是什么原因?.这里++i返回一个l值,所以我们可以增加它吗?
例如,我可以通过查看这两个日期来计算它们的差异,但在程序中计算时我不知道。
日期:A2014/02/12(y/m/d) 13:26:33和 B2014/02/14(y/m/d) 11:35:06则相差 46 个小时。
例如,我想获取列表的副本list[0] = 100.
l = [9, 2, 5]
#I want to get [100, 2, 5]
Run Code Online (Sandbox Code Playgroud)
我写了这段代码,但它不起作用(发生错误).
l = [9, 2, 5]
output = (lambda x: x[0]=100)(mylist[:])
#I want to get [100, 2, 5]
Run Code Online (Sandbox Code Playgroud)
任何Pythonic方式请.
谢谢.