假设我有一个分配给4096字节的指针.如何释放C中的最后1024个字节?在C++中怎么样?相反,如果我想释放前 1024个字节,并保留其余部分(两种语言),该怎么办?如何从中间解除分配(在我看来,这需要将它分成两个指针,在解除分配的区域之前和之后).
显然(至少根据gcc -std=c99)C99不支持函数重载.在C中不支持某些新功能的原因通常是向后兼容,但在这种情况下,我无法想到一个函数重载会破坏向后兼容性的情况.不包括这个基本功能的原因是什么?
我是一名Java程序员,希望学习.NET,特别是C#和F#,以提高我的就业能力.为了实现这一目标,我正在创建一个包含一些演示项目的网站.我希望通过创建这个网站来学习C#/ F#和.NET框架,然后有一个完成的产品来自我宣传和展示潜在的雇主.
我需要的是一个好主人.
我的优先事项是成本,稳定性和能力.我可能愿意支付高达10美元/月左右的费用,但我真的不想支付超过5美元/月的费用.稳定性和性能必须合理.我想访问所有常用的.NET工具(SQLServer,LINQ,C#,F#,VB,MVC,我可能合理需要的其他任何我还不知道的东西).基本上我不知道我想要什么,除了我的项目随着我的专业知识的增长而增长的空间.
编辑:有些人担心我的项目准备好之前我不应该花时间.但是,我希望能在不到一个月的时间内完成它,所以我并不担心在此之前付出时间.
我希望在哈希之后的URI中存储键/值对,以便在客户端使用,如下所示:
http://www.foo.com/index.html#foo=bar&baz=quux
Run Code Online (Sandbox Code Playgroud)
是否已经存在已经存在的解决方案,或者我应该自行推出?我已经在使用JQuery了,所以特别欢迎JQuery解决方案.
我最初的想法是使用正则表达式,但这很复杂,特别是当你需要转义键和值时.
编辑:让我澄清一下.我想做这样的事情:
foo = hash.get('foo');
hash.set('bar','baz');
Run Code Online (Sandbox Code Playgroud) 有没有一种方法可以告诉浏览器查看图像URL列表,直到找到可用的图像URL?纯HTML将是首选,但是我猜想JavaScript在这里可能是必要的(我已经在使用JQuery,所以这不是问题)。
编辑:感谢您的回答!我将添加一些说明:
我的问题具体是关于数组,而不是对象.
上有几个问题对SO malloc()/ free()与new/ delete,但他们都专注于如何使用它们的差异.我理解它们是如何使用的,但我不明白底层差异会导致使用上的差异.
我经常听到C程序员说malloc()并且free()操作成本很高,但我从来没有听说过C++程序员这样说new和delete.我还注意到C++没有与C相对应的操作realloc().
如果我正在写一个相当于C++的vector类,我想,以避免调整它的时候,但复制整个数组new和delete你必须复制.在C中,我会简单地说realloc().值得注意的是,realloc()可能只是复制整个数组,但我的印象是它使用相同的指针并为其分配更少的空间,至少在调整大小时.
所以我的问题是,如何通过使用的算法malloc(),并free()从那些使用不同的new和delete.更具体地说,为什么C方式有一个更昂贵的耻辱,为什么C++方式不允许在不复制的情况下调整大小?
如果我想为Python标准API贡献一个模块,那么需要采取哪些步骤以及预期会有哪些维护?例如,我有一个封装自动更新功能的模块,类似于Java的JNLP.
我有一组命令,如:
C:
cd Project
testproj.exe
Run Code Online (Sandbox Code Playgroud)
我的系统从远程系统逐个获取这些命令.我需要在从远程系统接收命令时执行cmd.exe中的每个命令.如何使用.NET执行这些?
我还需要将testproj.exe的结果返回给远程机器.运行命令后如何获取结果?
如你所知,如果你已经阅读了我的其他一些问题,我正在编写一种编程语言.我最关心的一个问题是许多语言都存在向后兼容性问题,我希望避免这些问题.一方面,我在Python社区中看到了很多关于切换到Python 3000的痛苦和痛苦,因为它打破了向后兼容性.另一方面,我见过C++,它从束缚到C语法开始,从未真正恢复过; 即C的语法不适合许多C++结构.
我的解决方案是允许程序员向文件添加编译器指令,该指令将告诉编译器在编译时使用哪种语言版本.但我的问题是,其他语言如何处理这个问题?是否有其他解决方案已经尝试过,这些解决方案有多成功?
我正在设计一种编程语言,所以我一直在考虑基类型的命名方式.
"词典"对于字典来说似乎是个坏名字.它们不是有组织的单词列表及其定义; 他们不处理单词,他们没有定义,也不是列表.他们与"词典"这个词唯一模糊的关联就是人们执行"查找"就像使用纸质词典一样(这就像把它称为"电话簿"一样好).
"HashTable"描述了可能发生变化的实现.
"关联数组"(来自JavaScript)获得了分数,因为"关联"对于它的作用是一个很好的形容词,但是因为"数组"也描述了一个实现,所以会失去分数,更糟糕的是,它描述的不准确.
"键/值对集"似乎最准确,但它太长而无用(你真的想每次输入"KeyValuePairSet"吗?).
如果我们将"键/值对"称为"关联",我们将获得"AssociationSet".这对我来说是最好的,但不会跳出来作为正确的答案; 它仍然很长,"设置"仍然感觉有点不对劲."AssociationList"更糟糕("list"意味着排序,而不是那里).我简单地只考虑了"关联",但这听起来更像是我会命名一个实例而不是类."RelationSet"和"PairSet"更短但描述性更低(两者都没有捕获到它是一种单向关系键值的事实;键的值在字典的上下文中没有意义).
任何想法可能是一个更好的词典名称?
我有一个随机生成的字符串:
polymer_str = "diol diNCO diamine diNCO diamine diNCO diamine diNCO diol diNCO diamine"
Run Code Online (Sandbox Code Playgroud)
我想找到最长的"diNCO二醇"序列和最长的"diNCO二胺"序列.因此,在上述情况下,最长的"diNCO二醇"序列为1,最长的"diNCO二胺"为3.
我将如何使用python的re模块进行此操作?
提前致谢.
编辑:
我的意思是给定字符串的最长重复次数.因此,含有"diNCO二胺"的最长的链是3:
二醇二-NCO二胺二-NCO二胺二-NCO二胺二硝基二醇二硝二胺
大多数高级语言(Python,Ruby,甚至Java)都使用pass-by引用.显然,我们在C中没有引用,但我们可以使用指针来模仿它们.这样做有一些好处.例如:
int findChar(char ch, char* in)
{
int i = 0;
for(i = 0; in[i] != '\0'; i++)
if(in[i] == ch)
return i;
return -1;
}
Run Code Online (Sandbox Code Playgroud)
这是一个常见的C范例:通过返回一些错误值来捕获异常或错误的情况(在这种情况下,-1如果字符不在字符串中则返回).
这个问题是:如果你想支持多于2^31 - 1字符的字符串怎么办?显而易见的解决方案是返回一个unsigned int但不适用于此错误值.
解决方案是这样的:
unsigned int* findChar(char ch, char* in)
{
unsigned int i = 0;
for(i = 0; in[i] != '\0'; i++)
if(in[i] == ch)
{
unsigned int index = (unsigned int*) malloc(sizeof(unsigned int));
*index = i;
return index;
}
return NULL;
}
Run Code Online (Sandbox Code Playgroud)
有一些明显的优化,我没有为简单起见,但你明白了; 返回NULL作为您的错误值. …