小编Nar*_*aki的帖子

gcc -mpreferred-stack-boundary选项

我想知道-mpreferred-stack-boundary在GNU编译器编译期间使用选项有什么用处.我已经检查了文档,但解释丢失了.有人可以解释一下吗.

linux stack gcc compilation

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

创建编程语言和编译器设计.它们有关系吗?

好吧,我想这个问题在很多时候都被问过了.

我想创建一种编程语言,不一定从今天开始,但需要超过2-3年.我不是一个非常优秀的程序员,但我正在改进.我想问的是如何创建一种语言并编写相关的编译器?

因为编译器将一种语言从一种形式翻译成另一种形式,我想这就是为特定文本编写编译器.因此,如果我学习编译器设计,我能编写自己的编程语言吗?

compiler-construction programming-languages

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

抓取Google Play商店

我想抓取Google Play商店下载所有Android应用程序的网页(所有网页都包含以下基本网址:https://play.google.com/store/apps/).我检查了Play商店的robots.txt文件,它不允许抓取这些网址.

此外,当我浏览Google Play商店时,我只能看到每个类别最多3页的热门应用程序.我如何获得其他应用程序页面?

如果有人尝试抓取Google Play,请告诉我以下事项:a)您是否成功抓取了Play商店.如果是,请告诉我你是怎么做到的.b)如何抓取每个类别的顶级应用程序中不可见的隐藏应用程序页面?c)是否有技术可以下载应用程序而不仅仅是网页?

我已经四处搜索并找到以下链接:

a) https://code.google.com/p/android-market-api/ 
b) https://code.google.com/p/android-marketplace-crawler/source/checkout 
c) http://mohsin-junaid.blogspot.co.uk/2012/12/how-to-install-android-marketplace.html 
d) http://mohsin-junaid.blogspot.in/2012/12/how-to-download-multiple-android-apks.html
Run Code Online (Sandbox Code Playgroud)

谢谢!

android web-crawler google-play

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

输入类型,c语言问题

我无法理解一些类型转换语法.例如.

float f=7.0;
short s=*(short *)&f;
Run Code Online (Sandbox Code Playgroud)

这里发生了short s=*(short *)&f什么?看起来我们正在将其something作为指向short的指针,然后初始化s为存储在指向的地址中的值something.

现在,这something看起来像变量的地址f.因此,如果something= address of f,在我看来,我们正在制作address of f一些指向一些简短的指针然后取消引用它.我知道我说的是错的,但我似乎无法想象它.

谢谢.

c casting

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

循环队列问题

我正在从一本书中学习排队.我在学习循环队列时遇到了问题.我正在学习的作者使用以下代码来解释如何将元素插入循环队列中.

#define MAX 100
char *p[MAX];
int spos = 0; // spos: holds the index of the **next free** storage location

int rpos = 0;// rpos: holds the index of the next item to retrieve

void qstore(char *q)
{
  /* The queue is full if either spos is one less than rpos
      or if spos is at the end of the queue array and rpos
      is at the beginning.
  */
  if(spos+1= =rpos || (spos+1==MAX && !rpos)) <-- /***Problem is here**. …
Run Code Online (Sandbox Code Playgroud)

c queue

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

Android应用程序重新打包:为什么它不会破坏代码?

我一直在阅读很多关于恶意软件编写者如何重新打包现有的benigh android .apk并重新打包它以添加恶意功能.

现在,根据我对.apk文件结构的理解,每个.apk文件都包含一个.dex文件,该文件基本上是java字节转换为.dex格式.此外,该应用程序还有一个名为manifest.xml的二进制XML以及其他资源文件和资产.如果我们必须向应用程序添加额外的恶意功能,那么我们必须修改manifest.xml(可以通过将二进制xml转换回普通xml轻松完成),资源(可以直接替换)和.dex文件.

但.dex文件具有特定的结构.据我所知,对它做的任何修改都应该破坏代码.这些工具使用哪些技术来防止代码破坏,因为如果向原始应用程序添加一些恶意功能,我们实际上是添加一个额外的模块.

有哪些工具可以支持.apk文件重新打包?

谢谢.

编辑:有些成员可能会发现讨论有关逆向工程的问题.Iam研究Android安全工作的学生.我需要知道.apk文件重新打包是如何工作的,因为这是我的研究课题.此外,公开谈论逆向工程并不是恶意行为 - 书籍是关于逆向工程的 - 使用逆向工程进行恶意攻击是恶意的:)

security android malware software-packaging

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

Android Permissions:他们在哪里描述?

在每个应用程序的Google Play网页上都有一个权限部分.几乎所有这些应用程序都使用一些标准术语来描述他们的权限,例如" READ PHONE STATUS AND IDENTITY"," SEND SMS"," FULL INTERNET ACCESS"等.但是在Android Developer的页面上,权限被列为常量及其描述,但不是Google Play网页上的标准术语.申请.

例如,有一个String Internet描述,Allows applications to open network sockets但没有FULL INTERNET ACCESS通常用于本说明的许可.

是否有一些链接提供了权限常量到这些标准权限表示法的映射?

android android-permissions

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

java.lang.OutOfMemoryError:Java堆空间 - 如何解决此错误?

我正在使用JSP(JDK 1.6)开发一个网站并使用apache tomcat7托管它.有一个网页,它接受用户输入,构建查询并将其发送到Lucene数据库(大小为20GB),并将结果显示在可下载的文本文件中.但是,此功能无法正常工作,我提交用户后收到以下异常输入.

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.OutOfMemoryError: Java heap space
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

javax.servlet.ServletException: java.lang.OutOfMemoryError: Java heap space
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:911)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)
    org.apache.jsp.Getinfo_jsp._jspService(Getinfo_jsp.java:305)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

java.lang.OutOfMemoryError: Java heap space
    org.apache.lucene.codecs.lucene42.Lucene42DocValuesProducer.loadNumeric(Lucene42DocValuesProducer.java:180)
    org.apache.lucene.codecs.lucene42.Lucene42DocValuesProducer.getNumeric(Lucene42DocValuesProducer.java:146)
    org.apache.lucene.index.SegmentCoreReaders.getNormValues(SegmentCoreReaders.java:301)
    org.apache.lucene.index.SegmentReader.getNormValues(SegmentReader.java:259)
    org.apache.lucene.search.similarities.TFIDFSimilarity.exactSimScorer(TFIDFSimilarity.java:760)
    org.apache.lucene.search.PhraseQuery$PhraseWeight.scorer(PhraseQuery.java:285)
    org.apache.lucene.search.BooleanQuery$BooleanWeight.scorer(BooleanQuery.java:323)
    org.apache.lucene.search.BooleanQuery$BooleanWeight.scorer(BooleanQuery.java:323)
    org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:603)
    org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:482)
    org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:438)
    org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:281)
    org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:269)
    com.cde.sentiment.DataCollection.GetTweets(DataCollection.java:76)
    com.cde.sentiment.SentimentCalculation.GenerateOutputFile(SentimentCalculation.java:102)
    org.apache.jsp.Getinfo_jsp._jspService(Getinfo_jsp.java:154)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) …
Run Code Online (Sandbox Code Playgroud)

java lucene jsp heap-memory tomcat7

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

向量迭代器提供错误的值

我的Graph实现面临问题,特别是函数printGraph().此函数包含一个循环,用于打印图形的邻接列表表示.如果我使用成员对象变量循环,adj那么它会显示正确的输出,即:

0 : 1 2 2 
1 : 0 2 
2 : 0 1 0 3 
3 : 2 3 3 
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用getter方法,adjL()那么它会给我一个错误的输出,即:

0 : 0 0 2 
1 : 0 0 
2 : 0 0 0 3 
3 : 0 0 3 
Run Code Online (Sandbox Code Playgroud)

我很可能犯了一个愚蠢的错误,但我似乎无法抓住它.任何帮助表示赞赏.我想我无法理解如何使用getter方法返回的值adjL().

class UndirectedGraph {
    //vector<vector <int> > adj;   
public:
    vector<vector <int> > adj;
    UndirectedGraph(int vCount);     /* Constructor */
    void addEdge(int v, int w);      /* Add an edge in the graph …
Run Code Online (Sandbox Code Playgroud)

c++ pointers iterator graph vector

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

Java:使用异步编程优化应用程序

我必须修改dropwizard应用程序以改善其运行时间.基本上,该应用程序每天接收大约300万个URL并下载并解析它们以检测恶意内容.问题是该应用程序只能处理100万个URL.当我查看应用程序时,我发现它正在进行大量的顺序调用.我想了解如何通过使其成为异步或其他技术来改进应用程序.

所需代码如下: -

/* Scheduler */
private long triggerDetection(String startDate, String endDate) {
for (UrlRequest request : urlRequests) {
                if (!validateRequests.isWhitelisted(request)) {
                    ContentDetectionClient.detectContent(request);
                }
            }
}

/* Client */
public void detectContent(UrlRequest urlRequest){
        Client client = new Client();
        URI uri = buildUrl(); /* It returns the URL of this dropwizard application's resource method provided below */

        ClientResponse response = client.resource(uri)
                .type(MediaType.APPLICATION_JSON_TYPE)
                .post(ClientResponse.class, urlRequest);

        Integer status = response.getStatus();
        if (status >= 200 && status < 300) {
            log.info("Completed request for url: …
Run Code Online (Sandbox Code Playgroud)

java optimization asynchronous

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

If-else使用float数据类型阻塞和意外结果.[编辑另外一个问题]

我使用gcc 4.4.1编译了以下程序,我得到了意想不到的输出(好吧,对我来说意外)

#include<stdio.h>

int main()
{
        float x=0.3, y=0.7;

        if(x==0.3)
        {
                if(y==0.7)
                        printf("Y\n\n");
                else
                        printf("X\n\n");
        }
        else
                printf("NONE\n\n");
}


Output: NONE
Run Code Online (Sandbox Code Playgroud)
#include<stdio.h>

int main()
{
        float x=0.3, y=0.7;

        if(x<0.3)
        {
                if(y==0.7)
                        printf("Y\n\n");
                else
                        printf("X\n\n");
        }
        else
                printf("NONE\n\n");
}

Output: NONE
Run Code Online (Sandbox Code Playgroud)
#include<stdio.h>

int main()
{
        float x=0.3, y=0.7;

        if(x>0.3)
        {
                if(y>0.7)
                        printf("Y\n\n");
                else
                        printf("X\n\n");
        }
        else
                printf("NONE\n\n");
}

    Output:X
Run Code Online (Sandbox Code Playgroud)

因此,可以清楚地看到"x"中的存储值大于0.3,"y"中的存储值小于0.7

为什么会这样?这是float数据类型的属性还是if-else语句以不同的方式解释float?

谢谢.


编辑:好吧,我思索着它,现在我有点困惑.请告诉我对这个问题的理解是否正确.

float x=0.3;
Run Code Online (Sandbox Code Playgroud)

这存储x=0.30000001192092895508在内存中.显然,这大于0.3(这是正确的吗?)

现在,double x=0.3结果x=0.29999999999999998890和小于0.3(这也是正确的吗?)

主要问题:因此,如果我使用store 0.3in float x …

c types if-statement literals

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

C++ STL堆栈弹出操作给出了分段错误

我在C++ 中用这个链接实现了一个编程问题,但是pop()我的代码在操作中遇到了分段错误.我是C++的新手,似乎无法自己找到错误.

#include<iostream>
#include<stack>

using namespace std;

void printNge(int *arr);

int main() {
        int arr[] = {1,4,2,6,3,8,7,2,6};

        printNge(arr);

        return 0;
}

void printNge(int *arr) {
        stack<int> st;

        st.push(arr[0]);

        for(int i=1; i<9;i++) {
                while((st.top() < arr[i]) && (!st.empty())) {
                        cout << "Element is:" << st.top() << "  NGE is:" << arr[i] << endl;
                        cout << "Removing element: " << st.top() << endl;
                        st.pop();
                }
                cout << "Pushing element: " << arr[i] << endl;
                st.push(arr[i]);
        }
        while(!st.empty()) { …
Run Code Online (Sandbox Code Playgroud)

c++ stack stl segmentation-fault

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