小编Nic*_*sta的帖子

在释放指向它们的内容后重用指针变量是否安全?

在释放指向的数据后重用指针是否安全且可预测?

例如:

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环境中)这是否安全且可预测?

如果这不是"安全且可预测的",那么在两个不同文件上完成相同操作的最佳方法是什么,而不是创建指针数量的两倍,等等?

编辑:我问是否可以在释放指向它后重新使用指针变量.我知道你在释放后不应该使用指针.假设代码完美运行(它按预期工作,正确释放内存等).我无法改变规格.这项任务.

谢谢!

c memory pointers

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

如何使用dict更新对象的成员?

我正在编写一个执行各种功能的Django应用程序,包括通过URL插入或更新新记录到数据库中.

因此,一些内部应用程序会发送请求/import/?a=1&b=2&c=3,例如.在视图中,我想创建一个新对象,foo = Foo()并将成员foo设置为request.GET字典中的数据.

这是我现在正在做的事情:

  1. 请求已发送至 /import/?a=1&b=2&c=3
  2. View创建新对象: foo = Foo()
  3. 对象随数据更新.

这是我到目前为止所得到的:

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)

或者那种效果.

谢谢!

python django

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

如何在本地测试Chromium/Chrome扩展的内联安装?

我正在尝试按照此文档(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不是经过验证的网站.

任何帮助表示赞赏.

google-chrome google-chrome-extension

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

Linux中的Motorola 68000的编程环境

问候所有,

本学期我正在学习微型计算机的结构和应用课程,我们正在使用Motorola 68000系列CPU /板进行编程.课程大纲建议在家里运行Easy68K或Teesside Motorola 68000 Assembler/Emulator等测试程序.

我告诉我的教授我运行x64 Linux并询问我需要什么样的环境来完成我的课程.他说,最简单的使用环境是安装了两个建议应用程序之一的Windows XP 32位虚拟机,但是,只要我可以测试我在家写的内容,他就不会真正关心我使用的内容.

所以我问是否存在适用于Linux的某种模拟器或环境,因此我可以测试我的代码,以及通过在Linux中编写和测试我的代码会遇到什么样的警告.
另外,我计划在Vim中进行编辑,这可能不是问题,但如果您有任何问题,我希望能够深入了解68000汇编的编辑器.

谢谢!

编辑:只是为了澄清 - 我根本不想在板上安装Linux - 我想在我的家用机器上编程,在本地测试代码,然后将其带到电路板上进行评级/运行.

linux assembly 68000

10
推荐指数
3
解决办法
9242
查看次数

如何通过RPM分发Python/Django App

我已经阅读了这个问题,我认为这是一个很好的开始,但我正在寻找更多的洞察力.

我使用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是内容分发的可行解决方案.我也有兴趣听到这个消息.

python django esx rpm

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

Vim是否具有基于文件语法的自动注释功能?

我不确定这是可能的,但我很有意思实现这一点.
理想情况下,我想将此功能映射到SHIFT+ CTRL+ 3.

我正在寻找让Vim输入注释(单行)的方法,该注释对应于我正在编辑的文件的语法.如果有多个单行注释样式,Vim可以自动选择一个,或者给我选择.如果单行注释有两个部分(例如/**/),则第一次按SHIFT+ CTRL+ 3将启动注释,第二次将关闭注释.

例子:

  • 蟒蛇: #
  • JavaScript的: //
  • C,C++:/**///

我知道有些脚本会为你插入注释,但我还没有看到任何基于文件语法的内容.

syntax vim comments autocomplete

6
推荐指数
2
解决办法
3572
查看次数

在django中使用循环

我有一个网页,我循环,并在循环内使用循环.

{% for o in something %}
{% for c in o %}
 <div class="{% cycle 'white' 'black'%}"></div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

现在,这意味着每次循环内部,第一个div标签变为白色.但是,我想要的是在白色和黑色之间交替,即以白色开始,然后下一次在循环内部开始第一个带有黑色的div标签.这是可能的在这里实现?

python django django-templates

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

在挂架中使用重定向时出错

使用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)

谁能帮我?

python pylons

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

有没有办法让Go一步编译和链接(一次6g和6l)?

我正在尝试搜索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后端)会很好.

谢谢!

bash go

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

如何在变量中存储多个字母?

与char我得到这个错误:.\ main.cpp(6):错误C2015:常量中的字符太多

c++ string char

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