Python中文
首页
教程
问答
标签
搜索
登录
注册
C语言中的数组骗局
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我必须制作一个一维元胞自动机,并用C语言实现它的任何规则</p> <p>在进入C语言之前(老实说,这不是我的强项),我只使用固定数组和for和while循环(使其直接进入端口)在python中对其进行编码。我的问题是,在Python中,我有以下代码:</p> <pre class="lang-css prettyprint-override"><code>def bin(n): aux = 7 bin = '' while aux>=0: if 2**aux <= n: n-=2**aux bin += '1' else: bin+='0' aux-=1 return list(bin) regla = bin(30) print regla ancho = 8 alto = 8 vector = [] valores_regla = ['111','110','101','100','011','010','001','000'] for i in range(ancho): vector.append('0') vector[ancho/2]='1' archivo = open('Imagen.pbm','w') archivo.write('P1 '+str(ancho)+ ' ' + str(alto)+'\n') aux = [] for y in range(alto): for x in range(len(vector)): i=x-1 c=x d=x+1 if x == 0: i=len(vector)-1 if x == len(vector)-1: d=0 for z in range(8): if vector[i]+vector[c]+vector[d] == valores_regla[z]: aux.append(regla[z]) archivo.write( ''.join(aux) + '\n') vector = aux aux = [] print 'Terminado' archivo.close() </code></pre> <p>基本上,我把整数转换成一个1字节的字符串二进制,然后把它的规则赋给一个数组(Valores\u Regla,基本上,二进制中的计数是0到7);然后我继续遍历这个向量,如果找到一个与规则匹配的,就把它附加到一个空数组(Aux),把这个数组写到一个文件中,然后让我的旧向量=Aux。你知道吗</p> <p>这段代码工作得很好,可以在n=alto迭代中生成细胞自动机的.pbm图像。现在在C中,我几乎一行一行地移植了这段代码,它几乎可以正常工作。你知道吗</p> <p>我的问题是当我尝试将新值“附加”到数组时。我还创建了一个Aux数组,填充了0。然后我做了同样的循环,检查了规则,如果它匹配,那么我将新的值赋给aux数组中等价的x位置。在这之前,它工作得非常完美:</p> <pre class="lang-css prettyprint-override"><code>#include <stdio.h> #include <string.h> char bufer[3]; bufer[0] =array[l]; bufer[1] = array[c]; bufer[2] = array[r]; bufer[3] = '\0'; </code></pre> <p>当我试图将Aux数组的内容复制到数组中时,问题就出现了。搞砸了。你知道吗</p> <p>我已经仔细检查了代码,没有发现任何错误。我甚至没有分配内存,我在使用静态数组。我不知所措。感谢您的帮助。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>至少有一个缓冲区溢出:</p> <pre><code>char bufer[3]; bufer[3] = '\0'; </code></pre> <p><code>bufer</code>大小必须为4。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
8 回答
无法使用Django\u mssql\u后端迁移到外部hos
10 回答
无法使用Django&Python3.4连接到MySql
9 回答
无法使用Django+nginx上载媒体文件
3 回答
无法使用Django1.6导入名称模式
2 回答
无法使用Django1.7和mongodb登录管理站点
3 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
4 回答
无法使用Djangockedi验证CBV中的字段
8 回答
无法使用Djangocketditor上载图像(错误400)
9 回答
无法使用Djangocron进行函数调用
2 回答
无法使用Djangofiler djang上载文件
7 回答
无法使用Djangokronos
4 回答
无法使用Djangomssql provid
10 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
10 回答
无法使用Djangomssq迁移Django数据库
7 回答
无法使用Djangonox创建用户
7 回答
无法使用Djangopyodb从Django查询SQL Server
8 回答
无法使用Djangopython3ldap连接到ldap
6 回答
无法使用Djangoredis连接到redis
8 回答
无法使用Django中的FK创建新表
2 回答