小编Joe*_*Joe的帖子

什么时候printf("%s",char*)停止打印?

在我的课上,我们正在编写自己的C的malloc()函数副本.为了测试我的代码(当前可以分配空间很好)我正在使用:

char* ptr = my_malloc(6*sizeof(char));
memcpy(ptr, "Hello\n", 6*sizeof(char));
printf("%s", ptr);
Run Code Online (Sandbox Code Playgroud)

输出通常是这样的:

Hello
Unprintable character
Run Code Online (Sandbox Code Playgroud)

有些调试认为我的代码本身并没有造成这种情况,因为ptr的内存如下:

[24个字节的元信息] [请求的字节数] [填充]

所以我认为printf正在进入填充,这只是垃圾.所以我进行了测试: printf("%s", "test\nd");得到:

test
d
Run Code Online (Sandbox Code Playgroud)

这让我想知道,当DOES printf("%s",char*)停止打印字符时?

c printf

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

读取,修改和编写XML的最佳方法

我的计划是使用我的C#程序读取XML文档,搜索我想要更改的特定条目,然后写出修改后的文档.但是,我已经变得不稳定,因为很难区分元素,无论它们是使用XmlTextReader开始还是结束,我正在使用它来读取文件.我可以做一些建议让我走上正轨.

该文档是一个HTML文档,因此您可以想象,它非常复杂.

我想在HTML文档中搜索元素id,例如查找并更改src;

<img border="0" src="bigpicture.png" width="248" height="36" alt="" id="lookforthis" />
Run Code Online (Sandbox Code Playgroud)

c# xml

15
推荐指数
2
解决办法
7万
查看次数

Go中的短变量声明和长变量声明之间的闭包范围差异是什么?

从我阅读规范:

短变量声明...是使用初始化表达式但没有类型的常规变量声明的简写...

http://golang.org/ref/spec

我原以为这两个是相同的:

var f func()
f = func() {
    ...
}
Run Code Online (Sandbox Code Playgroud)

f := func() {
    ...
}
Run Code Online (Sandbox Code Playgroud)

但似乎他们不是.我试图在外部函数中包装一个自递归函数,但这有效:

func myOuter() {
    var f func()

    f = func() {
        f()
    }

    f()
}
Run Code Online (Sandbox Code Playgroud)

但这不是,undefined: f在内部功能中说.

func myOuter() {
    f := func() {
        f()
    }

    f()
}
Run Code Online (Sandbox Code Playgroud)

那么区别是什么呢?有什么方法可以用简短的声明来写这个,或者我是否必须长篇大论地写出来?

recursion closures go

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

Amazon S3是否向CloudFront发送失效信号?

我似乎无法在文档中看到明显的答案.

当我在S3上更新文件并且启用了CloudFront时,S3是否会向CloudFront发送失效信号?或者我需要在更新文件后自己发送?

amazon amazon-s3 amazon-cloudfront

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

GCC会内联一个带指针的函数吗?

我有一个函数,它对一段数据进行操作(比方说,一个int),我想通过传递对valule的引用来改变它.因此,我有这个功能:void myFunction(int *thing) { ... }.当我使用它时,我称之为:myFunction(&anInt).

由于我的功能经常被调用(但是来自许多不同的地方),我担心它的性能.我将其重构为函数的原因是可测试性和代码重用.

编译器是否能够优化函数,将其内联直接操作我的anInt变量?

我希望你能在这个问题的精神中接受这个问题(即我不会过早地担心优化,我对答案感到好奇).同样,我不想把它变成一个宏.

c optimization gcc pointers inline

14
推荐指数
3
解决办法
4325
查看次数

分段违规后恢复生机

在Segmentation Fault错误之后,是否可以恢复C程序的正常执行流程?

struct A {
    int x;
};
A* a = 0;

a->x = 123; // this is where segmentation violation occurs

// after handling the error I want to get back here:
printf("normal execution");
// the rest of my source code....
Run Code Online (Sandbox Code Playgroud)

我想要一个类似于NullPointerException的机制,它存在于Java,C#等中.

注意:请不要告诉我C++中有一个异常处理机制,因为我知道,不要告诉我在分配之前我应该​​检查每个指针.

我真正想要实现的是恢复正常的执行流程,如上例所示.我知道可以使用POSIX信号进行一些操作.应该怎么样?其他想法?

c signals exception-handling segmentation-fault

14
推荐指数
2
解决办法
7863
查看次数

Django dev服务器间歇性地无法提供静态文件

在我的开发环境中,我因服务静态文件(js脚本和css)而出现间歇性故障.在Chrome的错误控制台中,我获得了404s.但是,如果我刷新这些项目,或直接访问这些网址,它们就可以正常使用.

这很烦人.

例:

GET http://127.0.0.1:8000/static/js/editor/xyz.js?v=1 404 (NOT FOUND)
Run Code Online (Sandbox Code Playgroud)

但如果我直接访问该网址就好了.如果我刷新页面几次,它将再次起作用.

有任何想法吗?

Chrome 14.0.835.202

Django==1.3
Fabric==1.0.1
Jinja2==2.5.5
PIL==1.1.7
Pygments==1.3.1
South==0.7.3
Sphinx==1.0.5
boto==2.0
chunks==0.1
django-devserver==0.2.1
django-pagination==1.0.7
django-sorting==0.1
django-storages==1.1.3
docutils==0.8
gunicorn==0.12.1
ipython==0.10.1
paramiko==1.7.6
pep8==0.6.1
psycopg2==2.2.2
pycrypto==2.0.1
python-dateutil==1.5
python-memcached==1.45
wsgiref==0.1.2
Run Code Online (Sandbox Code Playgroud)

django django-dev-server

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

在redis有序集中存储整数?

我有一个系统处理已经变成无符号长整数的键(通过将短序列打包成字节串).我想尝试将它们存储在Redis中,我希望尽可能以最佳方式进行.我关心的主要是内存效率.

从玩在线REPL我注意到以下两个是相同的

zadd myset 1.0 "123"

zadd myset 1.0 123
Run Code Online (Sandbox Code Playgroud)

这意味着即使我知道我想存储一个整数,它也必须设置为字符串.我从文档中注意到,密钥只是存储为char*s,而像SETBIT这样的命令表明Redis不反对将字符串视为客户端中的字节串.这暗示了一种unsigned long比它们的字符串表示更有效的存储方式.

unsigned longs 存储在有序集合中的最佳方法是什么?

redis

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

如何生成可重复的随机数序列?

我想要一个可以生成伪随机值序列的函数,但是每次运行时该序列都是可重复的.我想要的数据必须在给定范围内相当好地随机分布,它不一定是完美的.

我想编写一些基于随机数据运行性能测试的代码.我希望每台机器上的每次测试运行的数据都是相同的,但我不希望出于存储原因而将测试随机数据发送出去(最终可能会导致很多兆字节).

random模块的库似乎并不表示相同的种子将始终在任何计算机上提供相同的序列.

编辑:如果您打算建议我播种数据(如上所述),请提供说明该方法有效的文档,并将适用于一系列机器/实现.

编辑:Mac OS X上的CPython 2.7.1和PyPy 1.7以及CPython 2.7.1和CPython 2.52 = .2 Ubuntu似乎给出了相同的结果.尽管如此,还没有任何文件以黑白方式规定这一点.

有任何想法吗?

python random cpython

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

python相当于sed

有没有办法,没有双循环来完成以下sed命令的作用

输入:

Time
Banana
spinach
turkey
Run Code Online (Sandbox Code Playgroud)

sed -i "/Banana/ s/$/Toothpaste/" file

输出:

Time
BananaToothpaste
spinach
turkey
Run Code Online (Sandbox Code Playgroud)

到目前为止我所拥有的是一份双重清单,需要很长时间才能完成.

列表a有一堆数字列表b有一堆相同的数字,但顺序不同

对于A中的每个条目,我想在B中找到具有相同数字的行,并在其末尾添加值C.

希望这是有道理的,即使我的例子没有.

我在Bash中做了以下操作但它工作得很慢但是速度很慢......

for line in $(cat DATSRCLN.txt.utf8); do
        srch=$(echo $line | awk -F'^' '{print $1}');
        rep=$(echo $line | awk -F'^' '{print $2}');
        sed -i "/$(echo $srch)/ s/$/^$(echo $rep)/" tmp.1;
done
Run Code Online (Sandbox Code Playgroud)

谢谢!

python

14
推荐指数
4
解决办法
4万
查看次数