在释放指向的数据后重用指针是否安全且可预测?
例如:
char* fileNames[] = { "words.txt", "moreWords.txt" };
char** words = NULL;
int* wordsCount = NULL;
for ( i = 0; i < 2; ++i ) {
data = fopen( fileNames[i], "r" );
words = readWords( data );
wordsCount = countWords( words );
free( wordsCount );
for ( j = 0; words[j]; ++j )
free( words[j] );
free( words );
fclose( data );
}
Run Code Online (Sandbox Code Playgroud)
*错误检查省略
我正在运行代码,它似乎运行(没有警告,错误或内存问题),但我想知道在大多数环境中(特别是在典型的Linux环境中)这是否安全且可预测?
如果这不是"安全且可预测的",那么在两个不同文件上完成相同操作的最佳方法是什么,而不是创建指针数量的两倍,等等?
编辑:我问是否可以在释放指向它后重新使用指针变量.我知道你在释放后不应该使用指针值.假设代码完美运行(它按预期工作,正确释放内存等).我无法改变规格.这项任务.
谢谢!
我正在编写一个执行各种功能的Django应用程序,包括通过URL插入或更新新记录到数据库中.
因此,一些内部应用程序会发送请求/import/?a=1&b=2&c=3
,例如.在视图中,我想创建一个新对象,foo = Foo()
并将成员foo
设置为request.GET字典中的数据.
这是我现在正在做的事情:
/import/?a=1&b=2&c=3
foo = Foo()
这是我到目前为止所得到的:
foo.a = request['a']
foo.b = request['b']
foo.c = request['c']
Run Code Online (Sandbox Code Playgroud)
显然这很乏味且容易出错.URL中的数据与对象的成员具有完全相同的名称,因此它是一个简单的1对1映射.
理想情况下,我希望能够做到这样的事情:
foo = Foo()
foo.update(request.GET)
Run Code Online (Sandbox Code Playgroud)
或者那种效果.
谢谢!
我正在尝试按照此文档(https://developers.google.com/chrome/web-store/docs/inline_installation)测试Chrome网上应用店的内嵌安装功能.我正在本地开发这个以进行测试,并且不能轻易地并经常推动我的更改.
如何在本地测试内联安装,因为内联安装取决于您在网站站长工具中验证的网站?
码
if (!chrome.app.isInstalled) {
chrome.webstore.install(undefined, undefined, function(err) {
console.log(err);
});
}
Run Code Online (Sandbox Code Playgroud)
返回:
Installs can only be initiated by the Chrome Web Store item's verified site
Run Code Online (Sandbox Code Playgroud)
显然localhost不是经过验证的网站.
任何帮助表示赞赏.
问候所有,
本学期我正在学习微型计算机的结构和应用课程,我们正在使用Motorola 68000系列CPU /板进行编程.课程大纲建议在家里运行Easy68K或Teesside Motorola 68000 Assembler/Emulator等测试程序.
我告诉我的教授我运行x64 Linux并询问我需要什么样的环境来完成我的课程.他说,最简单的使用环境是安装了两个建议应用程序之一的Windows XP 32位虚拟机,但是,只要我可以测试我在家写的内容,他就不会真正关心我使用的内容.
所以我问是否存在适用于Linux的某种模拟器或环境,因此我可以测试我的代码,以及通过在Linux中编写和测试我的代码会遇到什么样的警告.
另外,我计划在Vim中进行编辑,这可能不是问题,但如果您有任何问题,我希望能够深入了解68000汇编的编辑器.
谢谢!
编辑:只是为了澄清 - 我根本不想在板上安装Linux - 我想在我的家用机器上编程,在本地测试代码,然后将其带到电路板上进行评级/运行.
我已经阅读了这个问题,我认为这是一个很好的开始,但我正在寻找更多的洞察力.
我使用Python 2.6和Django 1.2.1编写了一个应用程序.我想在没有安装Python 2.6或Django的系统上部署此应用程序.系统本身并没有安装很多东西 - sqlite3,pysqlite2,gcc等.但系统确实有Python 2.4.3.
什么是创建Python 2.6,Django和我的应用程序本身(一个标准的Django应用程序)的RPM最理智的方式,以便每个可以单独安装,以允许升级不同的组件?
我不太了解创建源RPM,但我怀疑这是可用的信息.如果有任何特别好的资源来创建源RPM,我也会很感激.
如果重要,系统是ESX 4 Update 1.
谢谢!
更新: 我从未想过,分发Python鸡蛋甚至使用setup.py是内容分发的可行解决方案.我也有兴趣听到这个消息.
我不确定这是可能的,但我很有意思实现这一点.
理想情况下,我想将此功能映射到SHIFT+ CTRL+ 3.
我正在寻找让Vim输入注释(单行)的方法,该注释对应于我正在编辑的文件的语法.如果有多个单行注释样式,Vim可以自动选择一个,或者给我选择.如果单行注释有两个部分(例如/*
和*/
),则第一次按SHIFT+ CTRL+ 3将启动注释,第二次将关闭注释.
例子:
#
//
/*
用*/
或//
我知道有些脚本会为你插入注释,但我还没有看到任何基于文件语法的内容.
我有一个网页,我循环,并在循环内使用循环.
{% for o in something %}
{% for c in o %}
<div class="{% cycle 'white' 'black'%}"></div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
现在,这意味着每次循环内部,第一个div标签变为白色.但是,我想要的是在白色和黑色之间交替,即以白色开始,然后下一次在循环内部开始第一个带有黑色的div标签.这是可能的在这里实现?
使用Pylons Verson 1.0:使用Pylons书中的FormDemo示例:
http://pylonsbook.com/en/1.1/working-with-forms-and-validators.html
我的控制器具有以下功能:
class FormtestController(BaseController):
def form(self):
return render('/simpleform.html')
def submit(self):
# Code to perform some action based on the form data
# ...
h.redirect_to(controller='formtest', action='result')
def result(self):
return 'Your data was successfully submitted.'
Run Code Online (Sandbox Code Playgroud)
首先我注意到在书中作者指示要导入redirect_来执行以下导入:
from pylons.controllers.util import redirect_to
Run Code Online (Sandbox Code Playgroud)
这似乎是不正确的,因为redirect_to存在于routes模块中,因此我将其更改为:
from routes import redirect_to
Run Code Online (Sandbox Code Playgroud)
一切正常,没有更多的导入错误,但当我执行表单提交时,我看到以下回溯
h.redirect_to(controller='formtest', action='result')
target = url_for(*args, **kargs)
encoding = config.mapper.encoding
return getattr(self.__shared_state, name)
AttributeError: 'thread._local' object has no attribute 'mapper'
Run Code Online (Sandbox Code Playgroud)
谁能帮我?
我正在尝试搜索Google,但关键字"go"却很难找到任何有用的答案.阅读http://golang.org/页面并没有发现任何有用的东西.
现在,我的bash.rc中有一个简单的函数:
function gogo() {
6g -o gotmp.tmp $@;
6l -o go.out gotmp.tmp;
rm -f gotmp.tmp;
}
Run Code Online (Sandbox Code Playgroud)
但是,这并不完美.对于内置的东西(可能是gogcc,但使用6g/6l后端)会很好.
谢谢!