小编Gri*_*han的帖子

指向结构argv赋值的指针

我一直在尝试分配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)

先感谢您.

c struct memcpy segmentation-fault argv

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

在使用 fscanf 操作之前检查字符串的大小?

我正在尝试编写一个安全的文件输入。我的固定缓冲区大小为 128。我想从文件中读取字符串,但在复制它们之前我想检查它们的128长度是否小于或等于。

我可以做类似的事情吗:

fscanf(fp, "%128s", myString)
Run Code Online (Sandbox Code Playgroud)

我已经看到以同样的方式使用 scanf 会限制读入的字符数,但没有看到任何对它的引用以这种方式与 fscanf 和字符串一起使用?

c

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

从Python中删除列表中的所有逗号

我的问题:我想在这个字符串中添加所有数字'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

python

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

'printf'后跟'scanf'需要按两次ENTER键才能接受输入

我是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两次才能接受我的输入.有谁知道为什么会这样?

c

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

用strtok标记字符串

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".

谢谢你的帮助.

c

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

我的这个代码显示浮点错误..任何人都可以请exlain

#include<stdio.h>
void main()
{
   float a = 5, b = 2;
   int c;
   c = a % b;
   printf("%d", c);
}
Run Code Online (Sandbox Code Playgroud)

我得到浮点错误这个程序 - 我..
有人请解释这个..

c

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

是否可以在bash中使用变量in语法?

我想知道是否有可能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我知道有很多方法可以通过使用变量来创建循环,但我想特别询问这种语法.

variables syntax bash

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

preincremented variable(++ i)++的post incement错误?

在下面的代码段中,我希望答案为5,但它显示编译时错误:

#include <stdio.h>
int main()
{
    int i = 4;
    printf("%d", (++i)++);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

是什么原因?.这里++i返回一个l值,所以我们可以增加它吗?

c

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

找出两个日期之间的小时差?

例如,我可以通过查看这两个日期来计算它们的差异,但在程序中计算时我不知道。

日期:A2014/02/12(y/m/d) 13:26:33和 B2014/02/14(y/m/d) 11:35:06则相差 46 个小时。

c

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

如何返回在Python中修改list [i]的列表副本?

例如,我想获取列表的副本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方式请.

谢谢.

python list

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

标签 统计

c ×7

python ×2

argv ×1

bash ×1

list ×1

memcpy ×1

segmentation-fault ×1

struct ×1

syntax ×1

variables ×1